import { message } from "antd";
const baseUrl = "http://xawn.f3322.net:8012"
export default function request(url, options) {
  
  
    const { body, query, ...rest } = options;
    let fetchParams = {
        ...rest
    };
    if (options.body) {
        let body = options.body || {};
        let s = ""
        Object.keys(body).forEach(key => {
            if (body[key] === undefined || body[key] === "") return;
            s += `${key}=${body[key]}&`
        })
        /**
         * 
         * const body  = {
                usernarm:'admin',
                password:'123'
            }
            s = "username=admin&password=123"

         */
        // options.body = s;
        fetchParams.body = s;
    }
    if (options.query) {
        console.log(options);
        const query = options.query || {};
        let s = ""
        Object.keys(query).forEach(key => {
            if (query[key] === undefined || query[key] === "") return;
            s += `${key}=${query[key]}&`
        })
        url = `${url}?${s}`;

    }
    fetchParams.headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        "Authentication": localStorage.getItem('token')
    }
    return fetch(baseUrl + url, fetchParams)
        .then(response => {
         
            switch (response.status) {
                case 200:
                    return response.json();
                case 401:
                    message.error('token过期')
                    localStorage.clear();
                     location= "#/login";
                    break;
                case 403:
                    message.error("对不起，您没有权限访问该接口");
                    return Promise.reject(response.json());
                default:
                    return Promise.reject(response.json());
            }
        })
        .catch(err => {
            // console.log('接口错误： ', err);
            // console.dir(err)
            const msg = "Unexpected end of JSON input";
            if (err.message && err.message === msg) {//针对后端接口状态码200，但是没有任何内容返回的时候
                return Promise.resolve();
            }
            return Promise.reject(err);
        })
}





// axios模块

// import axios from "axios";

// axios.defaults.baseURL = 'http://xawn.f3322.net:8012'
// // axios.interceptors.response.use(res => res.data)

// axios.interceptors.request.use((config) => {
//     console.log(config);
//     config.headers = {
//         'Content-Type': 'application/x-www-form-urlencoded',
//         Authentication: localStorage.token
//     }
//     return config
// })
// axios.interceptors.response.use((res) => {
//     console.log(res)
//     return res.data
// }, (error) => {
//     console.log(error)
//     if (error && error.response && error.response.status) {
//         switch (error.response.status) {
//             case 401:
//                 alert('身份认证已过期')
//             // ElMessage.error('身份认证已过期')
//             // localStorage.clear()
//             // setTimeout(()=>{
//             //     router.push('/login')
//             // },2000)
//             //     break;
//             // case 404:
//             //     ElMessage.error('请求的资源找不到')
//             //     break;
//             // case 500:
//             //     ElMessage.error('服务器错误')
//             //     break;
//             // default:
//             //     ElMessage.error('未知错误')
//         }
//         // 5. 抛出报错，阻止代码继续往后执行
//         // return Promise.reject(ElMessage.error);
//     }
//     // 6. if 以外的报错，也需要抛出报错提示
//     // return Promise.reject(ElMessage.error)
// })